package com.xbongbong.paas.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import com.xbongbong.paas.enums.clazz.ProcessTypeClass;
import java.util.ArrayList;
import java.util.List;

/**
 * 流程筛选项——流程状态 我提交的 筛选项枚举
 * @author 魏荣杰
 * @date 2019/1/22 16:26
 * @since v1.0
 * @version v1.0
 */
public enum ProcessSearchStatusCreateEnum {

    /**
     * 未处理
     */
    UNTREATED(FlowStatusEnum.APPROVAL_PENDING.getType(), FlowStatusEnum.APPROVAL_PENDING.getAlias(), "enum.flowStatus.memo.approval_pending"),
    /**
     * 通过
     */
    PASS(FlowStatusEnum.PASS.getType(), FlowStatusEnum.PASS.getAlias(), "enum.flowStatus.memo.pass"),

    /**
     * 拒绝
     */
    REJECT(FlowStatusEnum.REJECT.getType(), FlowStatusEnum.REJECT.getAlias(), "enum.flowStatus.memo.reject"),


    REVOKE(FlowStatusEnum.REVOKE.getType(), FlowStatusEnum.REVOKE.getAlias(), "enum.flowStatus.memo.revoke"),

    /**
     * 审批中
     */
    IN_APPROVAL(FlowStatusEnum.IN_APPROVAL.getType(), FlowStatusEnum.IN_APPROVAL.getAlias(), "enum.flowStatus.memo.in_approval"),
    ;

    private Integer type;

    private String alias;

    private String memo;

    ProcessSearchStatusCreateEnum(Integer type, String alias, String memo) {
        this.type = type;
        this.alias = alias;
        this.memo = memo;
    }

    public static List<ProcessTypeClass> getProcessTypeList() {
        List<ProcessTypeClass> processTypeClassList = new ArrayList<>();
        for (ProcessSearchStatusCreateEnum processSearchStatusCreateEnum : values()) {
            ProcessTypeClass processTypeClass = new ProcessTypeClass();
            processTypeClass.setType(processSearchStatusCreateEnum.getType());
            processTypeClass.setMemo(processSearchStatusCreateEnum.getMemo());
            processTypeClassList.add(processTypeClass);
        }
        return processTypeClassList;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getAlias() {
        return alias;
    }

    public void setAlias(String alias) {
        this.alias = alias;
    }

    public String getMemo() {
        return I18nMessageUtil.getMessage(memo);
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

}
